/*-------------------<-- Start of Description-->---------------------\ | Check a datetime variable; | | Input variable must be a string; | |---------------------<-- End of Description-->----------------------| |--------------------------------------------------------------------| |------------<-- Start of Files or Arguments Needed-->---------------| | Arguments neede: | | _datestr : input variable; Required; | | _newdate : the output date variable name; Required; | | _newtime : the output time variable name; Required; | | sql : where is this function used, within a sql statement | | or within a datastep; | |---------------<-- End of Files Arguments Needed-->-----------------| |--------------------------------------------------------------------| |------------------<-- Start of Files Created-->---------------------| | Usage: %parsedt(_datestr, _newdate, _newtime, sql); | \-------------------<-- End of Files Created-->---------------------*/ %macro parsedt(_datestr, _newdate, _newtime, sql); /*--------------------------------------------\ | Copy Right: Duo Zhou; | | Created: 3-11-2002 9:32pm; | | Purpose: Parse a datetime variable; | \--------------------------------------------*/ %if (%quote(%upcase(&sql)) eq SQL) %then %do; datepart(input(substr(&_datestr, 5,2)||substr(&_datestr,1,3)||substr(&_datestr,8,4)||"/"|| substr(&_datestr,13,8)||"."||substr(&_datestr,22,3)||" "|| substr(&_datestr,25,2),datetime40.)) as &_newdate, timepart(input(substr(&_datestr, 5,2)||substr(&_datestr,1,3)||substr(&_datestr,8,4)||"/"|| substr(&_datestr,13,8)||"."||substr(&_datestr,22,3)||" "|| substr(&_datestr,25,2),datetime40.)) as &_newtime %end; %else %if (%quote(%upcase(&sql)) ne SQL) %then %do; _y_ = input(substr(&_datestr, 5,2)||substr(&_datestr,1,3)||substr(&_datestr,8,4)||"/"|| substr(&_datestr,13,8)||"."||substr(&_datestr,22,3)||" "|| substr(&_datestr,25,2),datetime40.) ; &_newdate = datepart(_y_) ; &_newtime = timepart(_y_) ; format &_newtime time. &_newdate date.; drop _y_; %end; %mend parsedt;